A system for bi-directional audio-based communication may include a loudspeaker and one or more microphones. The loudspeaker is used to play back audio signals received from a remote (“far-end”) source, while the microphone is used to capture audio signals from a local (“near-end”) source. In the case of a voice-controlled audio playback system, for example, the far-end source may include video content from a network source or a disk, and the near-end source may include a viewer's speech commands. As another example, in the case of a telephone call, the near- and far-end sources may be people engaged in a conversation, and the audio signals may contain speech. An acoustic echo occurs when the far-end signal emitted by the loudspeaker is captured by the microphone, after undergoing reflections in the local environment.
An acoustic echo canceller (“AEC”) may be used to remove acoustic echo from an audio signal captured by a microphone in order to facilitate improved communication. For example, the AEC may filter the microphone signal by determining an estimate of the acoustic echo (e.g., the remote audio signal emitted from the loudspeaker and reflected in the local environment). The AEC can then subtract the estimate from the microphone signal to produce an approximation of the true local signal (e.g., the user's utterance). The estimate can be obtained by applying a transformation to a reference signal that corresponds to the remote signal emitted from the loudspeaker. In addition, the transformation can be implemented using an adaptive algorithm. For example, adaptive transformation relies on a feedback loop, which continuously adjusts a set of coefficients that are used to calculate the estimated echo from the far-end signal. Different environments produce different acoustic echoes from the same loudspeaker signal, and any change in the local environment may change the way that echoes are produced. By using a feedback loop to continuously adjust the coefficients, an AEC to can adapt its echo estimates to the local environment in which it operates.
Propagation delay is a problem in audio communication devices. Propagation delay results from a time delay between when a loudspeaker device sends an audio playback signal to the loudspeaker for playback and when a microphone signal is received by a microphone device. If an acoustic echo canceller is informed of the propagation delay, it can align the playback signal with the microphone signal before performing echo cancellation. If an acoustic echo canceller is not informed of the propagation delay, or if the estimate of the propagation delay is incorrect, the acoustic echo canceller will not be able to align the playback signal with the microphone signal, and performance of the acoustic echo canceller will suffer.
When the microphone is in a constant position relative to the loudspeaker, the propagation delay remains constant. However, if the microphone is moved, the propagation delay may change. The offset caused by propagation delay can severely inhibit the effectiveness of the acoustic echo canceller, which may inhibit speech recognition. Accordingly, there is a need to adaptively measure and correct propagation delay in audio communication systems.